#ifndef DECORE_GAMENODE_H
#define DECORE_GAMENODE_H

#include <list>
#include "RefPtr.h"

#include "Transform.h"

class Transform;

class GameNode
{ 
private:

	RefPtr<GameNode>				mParent;
	std::list<RefPtr<GameNode> >	mChildren;

	RefPtr<Transform>				mTransform;

public:

	GameNode();
	~GameNode();

	void				setParent(RefPtr<GameNode> pParent) {mParent = pParent;}
	RefPtr<GameNode>	getParent(){ return mParent; }

	void addChild(RefPtr<GameNode> pChild);

	RefPtr<Transform>	getTransform(){ return mTransform;}


	void Update();
};

#endif